//🏃 请求拦截器
// 添加请求拦截器
// 统一携带token
axios.interceptors.request.use(function (config) {
  // 可以通过headers，查看+设置请求头
  // config.headers['info'] = 'itheima666'
  // 每次发送请求，都会执行这个回调函数
  // console.log(config)
  // 在发送请求之前做些什么,比如: 统一设置token
  const token = localStorage.getItem('token')
  //💕💕  token存在，才携带
  if (token) {
    config.headers['Authorization'] = token//💕💕 携带的位置是请求头的authorization
  }
  console.log(config);

  return config;
}, function (error) {
  // 对请求错误做些什么//🏃🏃 应用场景很少,可以不写第二个参数
  return Promise.reject(error);
});

// 🏃 添加响应拦截器
// 统一处理token过期
axios.interceptors.response.use(function (response) {
  // 2xx 范围内的状态码都会触发该函数。
  return response;
}, function (error) {
  // console.dir(error)
  // 超出 2xx 范围的状态码都会触发该函数。
  // 对响应错误做点什么: 比如统一处理token失效
  // 统一处理token失效
  if (error.response.status === 401) {
    // 弹框提示用户
    // 删除缓存
    localStorage.removeItem('token')
    localStorage.removeItem('username')
    toast('请先登录', false)
    // 返回登录页
    setTimeout(() => {
      location.href = 'login.html'
    }, 1500)
  }
  return Promise.reject(error);
});
